package model

import (
	"time"
)

// AuditLog 审计日志模型
type AuditLog struct {
	ID           uint      `gorm:"primaryKey" json:"id"`
	UserID       *uint     `json:"user_id"`
	Username     string    `gorm:"size:100" json:"username"`
	Route        string    `gorm:"size:255" json:"route"`
	Method       string    `gorm:"size:10" json:"method"`
	Path         string    `gorm:"size:500" json:"path"`
	ClientIP     string    `gorm:"size:50" json:"client_ip"`
	StatusCode   int       `json:"status_code"`
	ResponseSize int64     `json:"response_size"`
	RequestTime  int64     `json:"request_time"` // 毫秒
	Level        string    `gorm:"size:20;default:'info'" json:"level"`
	Message      string    `gorm:"type:text" json:"message"`
	CreatedAt    time.Time `json:"created_at"`
}

// TableName 指定表名
func (AuditLog) TableName() string {
	return "audit_logs"
}

